package arithmetic.leetCode.yi;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: yilin
 * Date: 2019-07-16
 * Time: 14:14
 */
public class SumToLinkList {
    public static class ListNode {
        int val;
        ListNode next;

        ListNode(int x) {
            val = x;
        }

        public static void main(String[] args) {
            ListNode l1 = new ListNode(2);
            l1.next = new ListNode(4);
            l1.next.next = new ListNode(3);
            ListNode l2 = new ListNode(5);
            l2.next = new ListNode(6);
            l2.next.next = new ListNode(4);
            ListNode result = addTwoNumbers(l1, l2);
            while (result != null) {
                System.out.print(result.val + "\t");
                result = result.next;
            }
        }

        public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
            ListNode tmp = new ListNode(0);
            ListNode head = tmp;
            int capicty = 0;
            while (l1 != null || l2 != null || capicty != 0) {
                int sum = ((l1 == null) ? 0 : l1.val) + ((l2 == null) ? 0 : l2.val) + capicty;
                capicty = sum / 10;
                tmp.next = new ListNode(sum % 10);
                tmp = tmp.next;
                l1 = (l1 == null) ? l1 : l1.next;
                l2 = (l2 == null) ? l2 : l2.next;
            }
            return head.next;
        }

    }
}
